iT邦幫忙

2021 iThome 鐵人賽

DAY 15
0
自我挑戰組

Ruby on Rails JS系列 第 15

Ruby on Rails Controller 是幹嘛的

  • 分享至 

  • xImage
  •  

Controller 中⽂可翻譯成「控制器」,顧名思義,就是⽤來控制流程⽤的。它可能需
要跟 Model 要資料,可能需要跟 View 要 HTML template 來玩填空遊戲,或是可能
需要存取外部服務(例如⾦流串接)等,這⼤多是 Controller 要做的⼯作。
命名慣例
在 Rails 的慣例中,Controller 的命名會根據 Route 是使⽤複數的 resources 還
是單數 resource ⽅法⽽定。如果在 Route 是使⽤複數型態,例如:

Rails.application.routes.draw do
resources :posts
resources :users
end

在沒有特別指定 Resources 的 controller 參數的情況下,預設會對到的
Controller 就會是 PostsController 或是 UsersController 這樣的複數型態;
反之,如果使⽤的是單數 resource ,對到的就會是單數命名的 Controller。
第 0 步 - 新增 Controller
12 Controller
168
在開始之前,讓我們使⽤ Rails 內建的產⽣器做⼀個全新的 Controller:

$ bin/rails g controller pages
Running via Spring preloader in process 16503
create app/controllers/pages_controller.rb
invoke erb
create app/views/pages
invoke test_unit
create test/controllers/pages_controller_test.rb
invoke helper
create app/helpers/pages_helper.rb
invoke test_unit
invoke assets
invoke coffee
create app/assets/javascripts/pages.coffee
invoke scss
create app/assets/stylesheets/pages.scss

上⾯這⾏指令會幫你做出⼀個 PagesController 類別,以及⼀些其它對應的檔案
及⽬錄。Controller 的內容如下:

class PagesController < ApplicationController
end

這個 Controller 除了繼承⾃ ApplicationController 類別之外,裡⾯什麼內容都
沒有。所以如果上⼿之後,也不⼀定要⽤產⽣器來幫你產⽣ Controller,直接⾃⼰⼿
動新增也⾏。

參考資料

[為你自己學Ruby on Rails]https://railsbook.tw/chapters/08-ruby-basic-4.html


上一篇
Ruby on Rails RESTful 網址設計
下一篇
Ruby on Rails Controller
系列文
Ruby on Rails JS29
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言